﻿namespace WMS6.Web.BillingServiceRef
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Runtime.CompilerServices;
    using System.Runtime.Serialization;

    [Serializable, DataContract(Name="BillingCredenceInfo", Namespace="http://schemas.datacontract.org/2004/07/WMS6.DataEntity"), DebuggerStepThrough, GeneratedCode("System.Runtime.Serialization", "3.0.0.0")]
    public class BillingCredenceInfo : IExtensibleDataObject, INotifyPropertyChanged
    {
        [OptionalField]
        private string AccessorialChargesIDField;
        [OptionalField]
        private decimal BillingAmountField;
        [OptionalField]
        private string BillingCredenceIDField;
        [OptionalField]
        private string BillingObjectField;
        [OptionalField]
        private string BillingObjectIDField;
        [OptionalField]
        private string BillingObjectNameField;
        [OptionalField]
        private string ChargeModeField;
        [OptionalField]
        private string ChargeUnitField;
        [OptionalField]
        private string CostTypeField;
        [OptionalField]
        private string CreatedByField;
        [OptionalField]
        private DateTime CreatedDateField;
        [OptionalField]
        private string CredenceTypeField;
        [OptionalField]
        private string DocIDField;
        [OptionalField]
        private int DocLineIDField;
        [OptionalField]
        private string DocTypeField;
        [OptionalField]
        private string DueFromToField;
        [NonSerialized]
        private ExtensionDataObject extensionDataField;
        [OptionalField]
        private string ExternalDocIDField;
        [OptionalField]
        private decimal FixedRateField;
        [OptionalField]
        private decimal GrossWeightField;
        [OptionalField]
        private string IsStatementField;
        [OptionalField]
        private decimal NetWeightField;
        [OptionalField]
        private string OwnerIDField;
        [OptionalField]
        private DateTime PrintedDateField;
        [OptionalField]
        private decimal QuantityField;
        [OptionalField]
        private string RateTypeField;
        [OptionalField]
        private string RemarkField;
        [OptionalField]
        private int RowIDField;
        [OptionalField]
        private string SkuIDField;
        [OptionalField]
        private string StatementIDField;
        [OptionalField]
        private decimal TotalGrossWeightField;
        [OptionalField]
        private decimal TotalNetWeightField;
        [OptionalField]
        private decimal TotalVolumeField;
        [OptionalField]
        private byte[] TsField;
        [OptionalField]
        private string UpdatedByField;
        [OptionalField]
        private DateTime UpdatedDateField;
        [OptionalField]
        private decimal VolumeField;
        [OptionalField]
        private string WhIDField;

        public event PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if (propertyChanged != null)
            {
                propertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        [DataMember]
        public string AccessorialChargesID
        {
            get
            {
                return this.AccessorialChargesIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.AccessorialChargesIDField, value))
                {
                    this.AccessorialChargesIDField = value;
                    this.RaisePropertyChanged("AccessorialChargesID");
                }
            }
        }

        [DataMember]
        public decimal BillingAmount
        {
            get
            {
                return this.BillingAmountField;
            }
            set
            {
                if (!this.BillingAmountField.Equals(value))
                {
                    this.BillingAmountField = value;
                    this.RaisePropertyChanged("BillingAmount");
                }
            }
        }

        [DataMember]
        public string BillingCredenceID
        {
            get
            {
                return this.BillingCredenceIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.BillingCredenceIDField, value))
                {
                    this.BillingCredenceIDField = value;
                    this.RaisePropertyChanged("BillingCredenceID");
                }
            }
        }

        [DataMember]
        public string BillingObject
        {
            get
            {
                return this.BillingObjectField;
            }
            set
            {
                if (!object.ReferenceEquals(this.BillingObjectField, value))
                {
                    this.BillingObjectField = value;
                    this.RaisePropertyChanged("BillingObject");
                }
            }
        }

        [DataMember]
        public string BillingObjectID
        {
            get
            {
                return this.BillingObjectIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.BillingObjectIDField, value))
                {
                    this.BillingObjectIDField = value;
                    this.RaisePropertyChanged("BillingObjectID");
                }
            }
        }

        [DataMember]
        public string BillingObjectName
        {
            get
            {
                return this.BillingObjectNameField;
            }
            set
            {
                if (!object.ReferenceEquals(this.BillingObjectNameField, value))
                {
                    this.BillingObjectNameField = value;
                    this.RaisePropertyChanged("BillingObjectName");
                }
            }
        }

        [DataMember]
        public string ChargeMode
        {
            get
            {
                return this.ChargeModeField;
            }
            set
            {
                if (!object.ReferenceEquals(this.ChargeModeField, value))
                {
                    this.ChargeModeField = value;
                    this.RaisePropertyChanged("ChargeMode");
                }
            }
        }

        [DataMember]
        public string ChargeUnit
        {
            get
            {
                return this.ChargeUnitField;
            }
            set
            {
                if (!object.ReferenceEquals(this.ChargeUnitField, value))
                {
                    this.ChargeUnitField = value;
                    this.RaisePropertyChanged("ChargeUnit");
                }
            }
        }

        [DataMember]
        public string CostType
        {
            get
            {
                return this.CostTypeField;
            }
            set
            {
                if (!object.ReferenceEquals(this.CostTypeField, value))
                {
                    this.CostTypeField = value;
                    this.RaisePropertyChanged("CostType");
                }
            }
        }

        [DataMember]
        public string CreatedBy
        {
            get
            {
                return this.CreatedByField;
            }
            set
            {
                if (!object.ReferenceEquals(this.CreatedByField, value))
                {
                    this.CreatedByField = value;
                    this.RaisePropertyChanged("CreatedBy");
                }
            }
        }

        [DataMember]
        public DateTime CreatedDate
        {
            get
            {
                return this.CreatedDateField;
            }
            set
            {
                if (!this.CreatedDateField.Equals(value))
                {
                    this.CreatedDateField = value;
                    this.RaisePropertyChanged("CreatedDate");
                }
            }
        }

        [DataMember]
        public string CredenceType
        {
            get
            {
                return this.CredenceTypeField;
            }
            set
            {
                if (!object.ReferenceEquals(this.CredenceTypeField, value))
                {
                    this.CredenceTypeField = value;
                    this.RaisePropertyChanged("CredenceType");
                }
            }
        }

        [DataMember]
        public string DocID
        {
            get
            {
                return this.DocIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.DocIDField, value))
                {
                    this.DocIDField = value;
                    this.RaisePropertyChanged("DocID");
                }
            }
        }

        [DataMember]
        public int DocLineID
        {
            get
            {
                return this.DocLineIDField;
            }
            set
            {
                if (!this.DocLineIDField.Equals(value))
                {
                    this.DocLineIDField = value;
                    this.RaisePropertyChanged("DocLineID");
                }
            }
        }

        [DataMember]
        public string DocType
        {
            get
            {
                return this.DocTypeField;
            }
            set
            {
                if (!object.ReferenceEquals(this.DocTypeField, value))
                {
                    this.DocTypeField = value;
                    this.RaisePropertyChanged("DocType");
                }
            }
        }

        [DataMember]
        public string DueFromTo
        {
            get
            {
                return this.DueFromToField;
            }
            set
            {
                if (!object.ReferenceEquals(this.DueFromToField, value))
                {
                    this.DueFromToField = value;
                    this.RaisePropertyChanged("DueFromTo");
                }
            }
        }

        [Browsable(false)]
        public ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }

        [DataMember]
        public string ExternalDocID
        {
            get
            {
                return this.ExternalDocIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.ExternalDocIDField, value))
                {
                    this.ExternalDocIDField = value;
                    this.RaisePropertyChanged("ExternalDocID");
                }
            }
        }

        [DataMember]
        public decimal FixedRate
        {
            get
            {
                return this.FixedRateField;
            }
            set
            {
                if (!this.FixedRateField.Equals(value))
                {
                    this.FixedRateField = value;
                    this.RaisePropertyChanged("FixedRate");
                }
            }
        }

        [DataMember]
        public decimal GrossWeight
        {
            get
            {
                return this.GrossWeightField;
            }
            set
            {
                if (!this.GrossWeightField.Equals(value))
                {
                    this.GrossWeightField = value;
                    this.RaisePropertyChanged("GrossWeight");
                }
            }
        }

        [DataMember]
        public string IsStatement
        {
            get
            {
                return this.IsStatementField;
            }
            set
            {
                if (!object.ReferenceEquals(this.IsStatementField, value))
                {
                    this.IsStatementField = value;
                    this.RaisePropertyChanged("IsStatement");
                }
            }
        }

        [DataMember]
        public decimal NetWeight
        {
            get
            {
                return this.NetWeightField;
            }
            set
            {
                if (!this.NetWeightField.Equals(value))
                {
                    this.NetWeightField = value;
                    this.RaisePropertyChanged("NetWeight");
                }
            }
        }

        [DataMember]
        public string OwnerID
        {
            get
            {
                return this.OwnerIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.OwnerIDField, value))
                {
                    this.OwnerIDField = value;
                    this.RaisePropertyChanged("OwnerID");
                }
            }
        }

        [DataMember]
        public DateTime PrintedDate
        {
            get
            {
                return this.PrintedDateField;
            }
            set
            {
                if (!this.PrintedDateField.Equals(value))
                {
                    this.PrintedDateField = value;
                    this.RaisePropertyChanged("PrintedDate");
                }
            }
        }

        [DataMember]
        public decimal Quantity
        {
            get
            {
                return this.QuantityField;
            }
            set
            {
                if (!this.QuantityField.Equals(value))
                {
                    this.QuantityField = value;
                    this.RaisePropertyChanged("Quantity");
                }
            }
        }

        [DataMember]
        public string RateType
        {
            get
            {
                return this.RateTypeField;
            }
            set
            {
                if (!object.ReferenceEquals(this.RateTypeField, value))
                {
                    this.RateTypeField = value;
                    this.RaisePropertyChanged("RateType");
                }
            }
        }

        [DataMember]
        public string Remark
        {
            get
            {
                return this.RemarkField;
            }
            set
            {
                if (!object.ReferenceEquals(this.RemarkField, value))
                {
                    this.RemarkField = value;
                    this.RaisePropertyChanged("Remark");
                }
            }
        }

        [DataMember]
        public int RowID
        {
            get
            {
                return this.RowIDField;
            }
            set
            {
                if (!this.RowIDField.Equals(value))
                {
                    this.RowIDField = value;
                    this.RaisePropertyChanged("RowID");
                }
            }
        }

        [DataMember]
        public string SkuID
        {
            get
            {
                return this.SkuIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.SkuIDField, value))
                {
                    this.SkuIDField = value;
                    this.RaisePropertyChanged("SkuID");
                }
            }
        }

        [DataMember]
        public string StatementID
        {
            get
            {
                return this.StatementIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.StatementIDField, value))
                {
                    this.StatementIDField = value;
                    this.RaisePropertyChanged("StatementID");
                }
            }
        }

        [DataMember]
        public decimal TotalGrossWeight
        {
            get
            {
                return this.TotalGrossWeightField;
            }
            set
            {
                if (!this.TotalGrossWeightField.Equals(value))
                {
                    this.TotalGrossWeightField = value;
                    this.RaisePropertyChanged("TotalGrossWeight");
                }
            }
        }

        [DataMember]
        public decimal TotalNetWeight
        {
            get
            {
                return this.TotalNetWeightField;
            }
            set
            {
                if (!this.TotalNetWeightField.Equals(value))
                {
                    this.TotalNetWeightField = value;
                    this.RaisePropertyChanged("TotalNetWeight");
                }
            }
        }

        [DataMember]
        public decimal TotalVolume
        {
            get
            {
                return this.TotalVolumeField;
            }
            set
            {
                if (!this.TotalVolumeField.Equals(value))
                {
                    this.TotalVolumeField = value;
                    this.RaisePropertyChanged("TotalVolume");
                }
            }
        }

        [DataMember]
        public byte[] Ts
        {
            get
            {
                return this.TsField;
            }
            set
            {
                if (!object.ReferenceEquals(this.TsField, value))
                {
                    this.TsField = value;
                    this.RaisePropertyChanged("Ts");
                }
            }
        }

        [DataMember]
        public string UpdatedBy
        {
            get
            {
                return this.UpdatedByField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UpdatedByField, value))
                {
                    this.UpdatedByField = value;
                    this.RaisePropertyChanged("UpdatedBy");
                }
            }
        }

        [DataMember]
        public DateTime UpdatedDate
        {
            get
            {
                return this.UpdatedDateField;
            }
            set
            {
                if (!this.UpdatedDateField.Equals(value))
                {
                    this.UpdatedDateField = value;
                    this.RaisePropertyChanged("UpdatedDate");
                }
            }
        }

        [DataMember]
        public decimal Volume
        {
            get
            {
                return this.VolumeField;
            }
            set
            {
                if (!this.VolumeField.Equals(value))
                {
                    this.VolumeField = value;
                    this.RaisePropertyChanged("Volume");
                }
            }
        }

        [DataMember]
        public string WhID
        {
            get
            {
                return this.WhIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.WhIDField, value))
                {
                    this.WhIDField = value;
                    this.RaisePropertyChanged("WhID");
                }
            }
        }
    }
}

